From cb614cc8388bfde71928bbc29fe45456d216c154 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 1 Mar 2016 15:48:01 -0500 Subject: [PATCH] range: Don't leave css nodes behind We create and destroy gadgets inside the range hierarchy here, and if we don't explicitly remove their CSS nodes from the parent, they stick around. --- gtk/gtkrange.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index bbfd3bc610..c8d6129abb 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -1568,6 +1568,7 @@ gtk_range_set_show_fill_level (GtkRange *range, } else { + gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->fill_gadget), NULL); g_clear_object (&priv->fill_gadget); } @@ -3807,6 +3808,7 @@ _gtk_range_set_has_origin (GtkRange *range, } else { + gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->highlight_gadget), NULL); g_clear_object (&priv->highlight_gadget); } } @@ -3917,7 +3919,10 @@ sync_stepper_gadget (GtkRange *range, if (!should_have_stepper) { if (*gadget_ptr != NULL) - gtk_box_gadget_remove_gadget (GTK_BOX_GADGET (priv->contents_gadget), *gadget_ptr); + { + gtk_css_node_set_parent (gtk_css_gadget_get_node (*gadget_ptr), NULL); + gtk_box_gadget_remove_gadget (GTK_BOX_GADGET (priv->contents_gadget), *gadget_ptr); + } g_clear_object (gadget_ptr); return; } -- 2.30.2